﻿#pragma once
#include "GameplayTagContainer.h"

struct FStarrySkyGameplayTags
{
public:
	static const FStarrySkyGameplayTags& Get() { return GameplayTags; }
	static void InitializeNativeGameplayTags();
	/**
	 *属性集标签
	 */
	//主要标签
	FGameplayTag Attributes_Primary_Strength;//力量
	FGameplayTag Attributes_Primary_Intelligence;//智力
	FGameplayTag Attributes_Primary_Resilience;//韧性
	FGameplayTag Attributes_Primary_Vigor;//体质

	//重要属性
	FGameplayTag Attributes_vital_Health;
	FGameplayTag Attributes_vital_Mana;

	//次要属性标签
	FGameplayTag Attributes_Secondary_MaxHealth;//最大生命
	FGameplayTag Attributes_Secondary_MaxMana;//最大法力
	FGameplayTag Attributes_Secondary_Armor;//护甲
	FGameplayTag Attributes_Secondary_ArmorPenetration;//护甲穿透
	FGameplayTag Attributes_Secondary_BlockChance;//阻挡几率
	FGameplayTag Attributes_Secondary_CriticalHitChance;//暴击几率
	FGameplayTag Attributes_Secondary_CriticalHitDamage;//暴击伤害
	FGameplayTag Attributes_Secondary_CriticalHitResistance;//暴击抗性
	FGameplayTag Attributes_Secondary_HealthRegeneration;//生命恢复
	FGameplayTag Attributes_Secondary_ManaRegeneration;//法力恢复
	
	//输入标签
	FGameplayTag InputTag_LMB;//鼠标左键
	FGameplayTag InputTag_RMB;//鼠标右键
	FGameplayTag InputTag_1;//1键
	FGameplayTag InputTag_2;//2键
	FGameplayTag InputTag_3;//3键
	FGameplayTag InputTag_4;//4键

	//蒙太奇动画发送事件标签
	//火球标签
	FGameplayTag Event_Montage_FireBolt;
	//电击事件标签
	FGameplayTag Event_Montage_Electrocute;
	//近战攻击蒙太奇事件标签
	FGameplayTag Event_Montage_Attack_Melee;
	//奥术碎片蒙太奇事件标签
	FGameplayTag Event_Montage_ArcaneShards;

	//攻击蒙太奇动画标签
	FGameplayTag CombatSocket_Weapon;//蒙太奇武器攻击标签
	FGameplayTag CombatSocket_RightHand;//蒙太奇右手攻击标签
	FGameplayTag CombatSocket_LeftHand;//蒙太奇左手攻击标签
	FGameplayTag CombatSocket_Tail;//尾部攻击标签
private:
	static FStarrySkyGameplayTags GameplayTags;
};
